// 解题思路:
// 给定两个很长的字符串 s 和 t，表示两个数字，求两个数字的和
// 第一步：每位进行相加
// 第二步：处理进位，定义一个进位变量，每次 % 10 求各位，再 /= 10 求进位

public class LargeNumAddition {
    public String solve (String s, String t) {
        // write code here
        int i = s.length() - 1;
        int j = t.length() - 1;
        char[] sArr = s.toCharArray();
        char[] tArr = t.toCharArray();
        StringBuilder ret = new StringBuilder();
        int carry = 0;

        while(i >= 0 || j >= 0 || carry > 0){
            if(i >= 0){
                carry += (sArr[i] - '0');
                i--;
            }
            if(j >= 0){
                carry += (tArr[j] - '0');
                j--;
            }

            ret.append(carry % 10);
            carry /= 10;
        }
        return ret.reverse().toString();
    }
}
